Ambient Properties for Controls

If a control supports any ambient properties at all, it must at least respect the values of the following ambient properties under the conditions stated in the following table using the standard dispids.

Ambient Property

Dispid

Comment/Conditions for Use

LocaleID

-705

If Locale is significant to the control, e.g. for text output

UserMode

-709

If the control behaves differently in user (design) mode and run mode

UIDead

-710

If the control reacts to UI events, then it should honor this ambient property

ShowGrabHandles

-711

If the control support in-place resizing of itself

ShowHatching

-712

If the control support in-place activation and UI activation

DisplayAsDefault

-713

Only if the control is marked OLEMISC_ACTSLIKEBUTTON (which means that support for keyboard mnemonics is provided, thus IOleControl::GetControlInfo and IOleControl::OnMnemonic must be implemented).

 

As described previously, use of ambients requires both IOleControl (for OnAmbientPropertyChange as a minimum) as well as IOleObject (for SetClientSite and GetClientSite).

The OLEMISC_SETCLIENTSITEFIRST bit may not necessarily be supported by a container. In these circumstances, a control must resort to default values for the ambient properties that it requires.